package com.javaex.book.dao;

import java.util.List;

import com.javaex.book.pojo.User;

public interface UserDao {

	/**
	 * 根据用户名或邮箱查询用户信息
	 * @param username 用户名
	 * @param email 邮箱
	 * @return 如果返回null，表示没有这个用户。反之亦然
	 */
	User queryUserByUsernameOrEmail(String username, String email);
	
	/**
	 * 根据用户名查询用户信息
	 * @param username 用户名
	 * @return 如果返回null，表示没有这个用户。反之亦然
	 */
	User queryUserByUsername(String username);
	
	/**
	 * 保存用户信息
	 * @param user 用户信息
	 * @return 数据库表受影响的行数。如果返回0，则表示保存失败；大于0，保存成功
	 */
	Integer saveUser(User user);
	
	/**
	 * 查询用户数量
	 * @return 用户数量
	 */
	Integer countUsers();
	
	/**
	 * 查询用户
	 * @param start 分页查询起始位置
	 * @param pageSize 页容量
	 * @return 用户数据
	 */
	List<User> queryUserList(Integer start, Integer pageSize);
	
	/**
	 * 修改用户信息
	 * @param user 新的用户信息
	 * @return 修改结果
	 */
	Integer updateUser(User user);
	
	/**
	 * 根据用户id查询用户信息
	 * @param id 用户id
	 * @return 用户信息
	 */
	User queryUserById(Integer id);
	
	/**
	 * 删除用户
	 * @param id 用户id
	 * @return 删除结果
	 */
	Integer deleteUser(Integer id);
}
